package com.whk.controller;

import com.whk.pojo.Emp;
import com.whk.pojo.PageBean;
import com.whk.pojo.Result;
import com.whk.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.lang.reflect.Array;
import java.time.LocalDate;
import java.util.List;

/**
 * emp处理接口层
 */
@RestController
@Slf4j
public class EmpController {

    //注入empservice实现类对象
    @Autowired
    private  EmpService empService;

    /**
     * 分页查询员工信息
     */
    @GetMapping("/emps")
    public Result result(@RequestParam(defaultValue = "1") Integer page,
                         @RequestParam(defaultValue = "10") Integer pageSize, String name, Short gender,
                         @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
                         @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end){    //默认页数为1，每页10条记录
        log.info("传输参数为{}，{}，{}，{}，{}，{}",page,pageSize,name,gender,begin,end);
        //调用service接口
        PageBean pageBean = empService.page(page, pageSize,name,gender,begin,end);
        //将数据封装到Result返回给前端
        return Result.success(pageBean);
    }

    /**
     * 根据iD删除员工信息
     */
    @DeleteMapping("/emps/{ids}")
    public Result deleteById(@PathVariable List<Integer> ids){
        //调用service接口
        empService.delete(ids);
        return Result.success();
    }

    /**
     * 新增员工信息
     */
    @PostMapping("/emps")
    public Result insent(@RequestBody Emp emp){
        //调用service接口
        empService.insert(emp);
        log.info("添加员工信息{}", emp);
        return Result.success();
    }

    /**
     * 更新员工信息
     */
    @PutMapping("/emps")
    public Result update(@RequestBody Emp emp){
        //调用service接口
        empService.update(emp);
        log.info("修改员工{}",emp);
        return Result.success();
    }

    /**
     * 根据id查询员工信息
     */
    @GetMapping("/emps/{id}")
    public Result selectById(@PathVariable Integer id){
        //调用service接口
        Emp emp =  empService.selectById(id);
        log.info("查询员工id={}", id);
        return Result.success(emp);
    }
}
